The widespread availability of personal computers at low cost has lead to a situation where the general public increasingly demands access to the Internet and other computer networks. A similar demand exists for wireless communications in that the public increasingly demands that cellular telephones be available at low cost with ubiquitous coverage.
As a result of their familiarity with these two technologies, the general population now increasingly wishes to not only have access to computer networks, but also wishes to access such networks in wireless fashion as well. This is of particular concern for the users of portable computers, laptop computers, hand-held personal digital assistants (PDAs), and the like, who would prefer and, indeed, now expect to be able to access such networks with the same convenience they have grown accustom to when using their cellular telephones.
Unfortunately, there is still no widely available satisfactory solution for providing low cost, high speed access to the Internet and other networks using the existing wireless infrastructure which has been built at some expense to support cellular telephony. Indeed, at the present time, the users of wireless modems that operate with the existing cellular telephone network often experience a difficult time when trying to, for example, use the Internet to view web pages. The same frustration level is felt in any situation when attempting to perform other tasks that require the transfer of relatively large amounts of data between computers.
This is, at least, in part due to the architecture of cellular telephone networks, which were originally designed to support voice communications, as compared to the communication protocols in use for the Internet, which were originally optimized for wireline communication. In particular, the protocols used for connecting computers over wireline networks do not lend themselves well to efficient transmission over standard wireless connections.
For example, cellular networks were originally designed to deliver voice grade services, having an information bandwidth of approximately three kilohertz (kHz). While techniques exist for communicating data over such radio channels at rate of 9600 kilo bits per second (kbps), such low frequency channels do not lend themselves directly to transmitting data at rates of 28.8 kbps or even the 56.6 kbps that is now commonly available using inexpensive wireline modems. These rate are presently thought to be the minimum acceptable data rates for Internet access.
This situation is true for advanced digital wireless communication protocols as well, such as Code Division Multiple Access (CDMA). Even though such systems convert input voice information to digital signals, they were also designed to provide communication channels at voice grade bandwidth. As a result, they have been designed to use communication channels that may exhibit a bit error rate (BER) of as high as approximately one in one thousand bits in multipath fading environments. While such a bit error rate is perfectly acceptable for the transmission of voice signals, it becomes cumbersome for most data transmission environments.
Such a high bit error rate is certainly unacceptable for Internet type data transmissions. For example, the Transmission Control Protocol/Internet Protocol (TCP/IP) standard in use for Internet air transmission uses a frame size of 1480 bits. Thus, if a bit error is received in every frame, such as detected by a frame check sequence, it would appear as though every single frame might have to be re-transmitted in certain applications.
One method of providing an error-free channel over a wireless communication network entails an intermediary base unit resending an individual packet over the wireless connection until the packet is received correctly. If the wireless connection experiences interference or is operating under poor signal-to-noise ratio conditions, multiple resends may be required to achieve an error free transmission. As a result, a non-deterministic delay is introduced into the system.
The TCP/IP standard however, does not account for such non-deterministic delays and therefore assumes an error has occurred in the transmission. The TCP/IP standard includes various algorithms which are automatically invoked in such cases. One such algorithm, a performance enhancing algorithm described in Request For Comments (RFC) 2001, retransmits a packet if three acknowledgments are received which identify the same packet as being a next expected packet.
By way of background, a TCP/IP network may operate under a sliding window protocol in an effort to provide reliable stream delivery while maximizing bandwidth. Under this protocol, both endpoints of a TCP/IP connection negotiate an acceptable window size. The window size designates a maximum number of bytes which may be transmitted by a sending unit before receiving an acknowledgment from the receiving unit. Generally, the window is referred to in terms of maximum number of unacknowledged packets. Once the sending unit receives an acknowledgment for the first packet in the window, it xe2x80x9cslidesxe2x80x9d the window along and sends the next packet.
TCP/IP acknowledgments are cumulative. That is, they refer to a position in the stream of data up to which, the data has been received. Moreover, the acknowledgment specifies a sequence number of the next byte or octet that the receiver expects to receive. As a result, the sending unit is informed of the longest contiguous prefix of the stream that has been received correctly. No information, however, is provided with regard to other packets which were transmitted successfully but, were received out of order.
That is, in a stream of data comprising packet numbers 1-15, where a window consists of ten packets, if packets 1-5 and 7-15 have been received successfully, each acknowledgment sent for a packet received after packets 1-5 have been received, specifies that packet 6, the next highest contiguous packet, is expected. Once three acknowledgments requesting packet 6 have been sent, the RFC 2001 performance enhancing algorithm is invoked and packets 6-15 are resent by the sending unit even though packets 7-15 have been successfully received by the receiving unit.
In a wireless TCP/IP connection, a failure to receive a packet may not be an indication of a problem in a system but rather, as described above, a delay caused by an effort to send an error free packet. As a result, additional bandwidth is used to needlessly resend packets which have either already been received but not acknowledged or are currently being transmitted with some additional delay.
In accordance with one aspect of the invention, a method for avoiding a packet resend in a wireless data communications network is provided that includes monitoring acknowledgment message traffic between a sending unit and a receiving unit and preventing forwarding of an acknowledgment message to the sending unit when the acknowledgment message is a second duplicate acknowledgment message. With such an arrangement, non-deterministic delays introduced into a wireless communications network do not needlessly cause packet resends.
In accordance with a further aspect of the invention, an apparatus is provided for avoiding a packet resend in a wireless data communications network. The apparatus includes a first endpoint unit connected between a sending unit and a receiving unit. The first endpoint unit includes a monitor component to monitor acknowledgment message traffic between the sending unit and the receiving unit and a filter unit to prevent forwarding of a duplicate acknowledgment message to the sending unit until a predefined condition is met. With such an arrangement, resends of packets previously received at a receiving unit may be avoided.
In accordance with a further aspect of the invention a method is provided for providing packet receipt acknowledgment in a wireless data communications network. The method includes sending an acknowledgment message from a receiving unit to an endpoint unit to acknowledge receipt of a data packet, forwarding the acknowledgment message, from the endpoint unit, to a sending unit if the acknowledgment message is not a duplicate acknowledgment message and preventing forwarding of the acknowledgment message to the sending unit if the acknowledgment message is a second duplicate acknowledgment message.
Also provided is a computer program product for avoiding a packet resend in a wireless data communications network.